Elastic Stack - Heartbeat
安裝
A. 前置作業
- 準備 Elasticsearch host,版本建議與 heartbeat 相同
- Elasticsearch 需要註冊 licence
B. 步驟流程
1. 下載 docker image
1 | docker pull docker.elastic.co/beats/heartbeat:6.4.3 |
2. 建立 heartbeat.yml
heartbeat.yml 為 Heartbeat 的設定檔,當中定義了欲監控的服務,與輸出資料的寫入對象等設定。
關於 setup.template 的說明,請參考 Load the index template in Elasticsearch。
該檔案若有任何異動,Heartbeat 服務則需要重新啟動。
1 | setup.template.name: "my-heartbeat" |
3. 運行 docker container
1 | docker run -d \ |
運行方式
週期性呼叫 API
Heartbeat 根據設定檔的 heartbeat.monitors 進行監控。
在官方文件 Exported fields 定義了能夠輸出的資訊,其中以下欄位是默認輸出:
- Host fields
- TLS encryption layer fields
- HTTP monitor fields
- Common heartbeat monitor fields
- Host lookup fields
- TCP layer fields
- Beat fields (涵蓋 error fields)
發送至 ES 儲存數據
根據設定檔 output.elasticsearch.index 定義之 pattern 作為 index 的命名規則。
透過 Kibana 呈現數據
根據設定檔 setup.kibana 配置,當 Heartbeat 啟動時會建立 Heartbeat visualize & dashboard。
備註
若憑證失效
當 Heartbeat 發送紀錄至 Elasticsearch 時,Heartbeat 會因為該 ES 的憑證過期出現以下錯誤訊息:
1 | [ERROR][o.e.x.s.a.f.SecurityActionFilter] [mpzf-n0] blocking [cluster:monitor/stats] operation due to expired license. Cluster health, cluster stats and indices stats , |